package com.ruoyi.common.core.domain.dto;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;

@Data
public class RefundTransactionDTO {
    /**
     * 商户代码，标识进行交易的商户
     */
    @JSONField(name = "mchnt_cd")
    private String mchntCd;

    /**
     * 商户订单号，由商户生成，用于标识原始交易或退款请求
     */
    @JSONField(name = "mchnt_order_no")
    private String mchntOrderNo;

    /**
     * 订单类型，这里为“WECHAT”，指示使用的支付类型是微信支付
     */
    @JSONField(name = "order_type")
    private String orderType;

    /**
     * 随机字符串，用于签名的生成，增强安全性
     */
    @JSONField(name = "random_str")
    private String randomStr;

    /**
     * 退款交易的唯一标识，由支付系统生成
     */
    @JSONField(name = "refund_id")
    private String refundId;

    /**
     * 退款订单号，商户生成的用于标识退款请求的唯一号码
     */
    @JSONField(name = "refund_order_no")
    private String refundOrderNo;

    /**
     * 预留字段，通常用于表示结算日期
     */
    @JSONField(name = "reserved_fy_settle_dt")
    private String reservedFySettleDt;

    /**
     * 预留字段，富友的跟踪号，用于在系统中跟踪退款或支付操作
     */
    @JSONField(name = "reserved_fy_trace_no")
    private String reservedFyTraceNo;

    /**
     * 预留字段，退款金额，单位为分
     */
    @JSONField(name = "reserved_refund_amt")
    private String reservedRefundAmt;

    /**
     * 结果代码，"000000" 表示操作成功
     */
    @JSONField(name = "result_code")
    private String resultCode;

    /**
     * 结果消息，"SUCCESS" 表示操作成功完成
     */
    @JSONField(name = "result_msg")
    private String resultMsg;

    /**
     * 签名，用于验证响应的真实性和完整性
     */
    @JSONField(name = "sign")
    private String sign;

    /**
     * 终端ID，标识发起交易的终端
     */
    @JSONField(name = "term_id")
    private String termId;

    /**
     * 交易ID，支付系统生成的原支付交易的唯一标识
     */
    @JSONField(name = "transaction_id")
    private String transactionId;

}
